Trabalhando com Bancos de Dados
Conjunto de tabelas que armazenam dados de forma estruturada, onde cada tabela é uma coleção de registros com linhas em colunas.
Sistemas de Gerenciamento de Banco de Dados (SGBDs)
Exemplos de Uso
| Característica | PostgreSQL | MySQL / MariaDB | SQLite |
|---|---|---|---|
| Conformidade com ANSI SQL | Alta | Boa | Boa |
| Complexidade de Operações | Bancos de dados grandes | Sites e apps web | Aplicações embutidas |
| Tipo de Armazenamento | Servidor | Servidor | Local |
| Uso Típico | Análises avançadas | Desenvolvimento web | Apps leves e autônomos |
R, por exemplo, podemos;
DBI na maioria dos casos.dbGetQuery() passamos a query SQL como parâmetro e conseguimos tranaformar o resultado em um dataframe.dbplyr também podemos utilizar a sintaxe do dplyr do R para manipular dados diretamente no banco.SELECT * FROM Customers;
SELECT first_name, age FROM Customers
SELECT * FROM Orders WHERE amount > 300;
SELECT * FROM Customers ORDER BY country;
INNER JOIN adicionando a coluna amount na tabela Customers:SELECT Customers.first_name, Orders.amount
FROM Customers
JOIN Orders ON Customers.customer_id = Orders.customer_id;
LEFT JOIN adicionando a coluna amount na tabela CustomersSELECT Customers.first_name, Orders.amount
FROM Customers
LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;
LEFT JOIN adicionando first_name de Customers na tabela Orders:SELECT Orders.order_id, Customers.first_name
FROM Orders
LEFT JOIN Customers ON Orders.customer_id = Customers.customer_id;
country e calcular idade média:SELECT country, AVG(age) AS mean_age
FROM Customers
GROUP BY country;
SELECT country, AVG(amount)
FROM Orders
JOIN Customers ON Orders.customer_id = Customers.customer_id
GROUP BY country;
Este comando agrupa os pedidos pelo país do cliente e calcula o valor médio dos pedidos para cada país.
SELECT Customers.first_name, SUM(Orders.amount) AS total_spent, AVG(Orders.amount) AS average_spent
FROM Customers
JOIN Orders ON Customers.customer_id = Orders.customer_id
GROUP BY Customers.customer_id;
Aqui, os pedidos são agrupados por nome de cliente, e o total gasto e o valor médio gasto por cliente são calculados.